// 回复路由
const router = require('express').Router();
const replyModel = require('../../model/replyModel');
const Jwt = require('../../common/token/jwt');//处理token的工具 json web token

// 发表回复
// URL: /api/reply/add
// 参数： r_text, r_create_time, to_user_id, article_id,c_id
router.post('/add', async (req, res) => {
    // 获取token
    let token = req.body.token || req.headers.token;
    // 验证token
    let result = new Jwt(token).verifyToken();
    // 登录状态
    if (result.code == 200) {
        // 获取前端的参数
        let { r_text, r_create_time, to_user_id, article_id, c_id } = req.body;
        // 从登录临时身份获取from_user_id
        let from_user_id = result.info.data;
        // 判断参数是否有值
        if (r_text && r_create_time && to_user_id && article_id && c_id) {
            // 回复id
            let r_id = Math.random().toString().slice(2) + "_" + (new Date().getTime())
            // 发表回复
            await replyModel.add(r_id, r_text, r_create_time, from_user_id, to_user_id, article_id,c_id)
                .then(
                    (content) => {
                        res.send(content)
                    },
                    (error) => {
                        res.send(error)
                    }
                )
        }
        else {
            res.send({
                code: 404,
                msg: '缺少参数。'
            })
        }
    }
    else {
        res.send({
            code: -1,
            msg: '登录失效,请重新登录。'
        })
    }
})

// 删除回复
// URL: /api/reply/remove
// 参数: r_id , token  
router.post('/remove', async (req, res) => {
    // 获取token
    let token = req.body.token || req.headers.token;
    // 验证token
    let result = new Jwt(token).verifyToken();
    // 登录状态
    if (result.code == 200) {
        let { r_id } = req.body;
        let from_user_id = result.info.data;//登录用户的身份
        if (r_id) {
            await replyModel.remove(r_id, from_user_id)
                .then(
                    (content) => { res.send(content) },
                    (error) => { res.send(error) }
                )
        }
        else {
            res.send({
                code: 404,
                msg: '缺少参数。'
            })
        }
    }
    else {
        res.send({
            code: -1,
            msg: '登录失效,请重新登录。'
        })
    }
})

// 获取回复列表
// URL: /api/reply/list
router.get('/list', async (req, res) => {
    let { article_id, c_id } = req.query;
    if(article_id && c_id) {
        await replyModel.list(article_id, c_id)
        .then(
            (content) => { res.send(content) },
            (error) => { res.send(error) }
        )
    }
    else {
        res.send({
            code: 404,
            msg: '缺少参数。'
        })
    }
})



module.exports = router;